⚠️ 免責聲明
本文整理自 IBM × Coursera 《Develop Generative AI Applications》模組三與 LangChain 官方教學筆記。
內容為學習與教學用途,非官方文件,實際應用請遵守相關 API 授權與資料安全規範。
「我們正在從 指令電腦,轉向 與電腦共思考。」
—— Sam Altman(OpenAI CEO)
LangChain 讓這場轉變成真。
它不是單純的 AI 函式庫,而是 LLM 的應用層作業系統(Application OS),使模型能夠擁有:
這標誌著生成式 AI 的第二階段:從對話模型(Chatbots)進化為可執行代理(Agentic Systems)。
LangChain 的價值在於「讓模型可用,讓智慧可執行」。
它將人類語言、商業邏輯與程式運算橋接起來。
元件 | 說明 | 比喻 |
---|---|---|
LLM | 語言模型,負責推理與生成 | 主廚 |
PromptTemplate | 任務描述與語境設定 | 食譜 |
Chains | 將多步驟任務串聯 | 廚房流程 |
Memory | 保留上下文、歷史記錄 | 廚房筆記 |
Retriever / Vector DB | 知識檢索與內容補充 | 食材庫 |
Agent + Tools | 自主行動與外部互動 | 行政主廚與廚具 |
OutputParser | 格式化結果、生成結構化輸出 | 擺盤師 |
ReAct 框架讓模型不只是「生成」,而是「推理後採取行動」。
Thought → Action → Observation → Thought → Final Answer
範例:AI 代理查詢股價
Thought: 我需要取得 AAPL 的股價
Action: 使用 FinanceAPI("AAPL")
Observation: API 回傳錯誤(Service Unavailable)
Thought: 我應該改用備援工具
Action: 使用 WebSearch("Apple stock price")
這種「思考–行動–觀察」的閉環能力,讓 AI 具備韌性(Robustness)與自我修復能力(Self-healing)。
LangChain Expression Language (LCEL) 讓開發者用直覺的「管道式語法」組裝應用:
chain = prompt | llm | output_parser
這不是語法糖,而是:
LCEL 的核心在於「你不是寫程式給 AI,而是設計流程給 AI 運行。」
傳統開發 | LangChain 開發 |
---|---|
編寫邏輯 | 設計語境 |
處理資料流 | 組合模組 |
Debug 程式 | 觀察 Agent 思考 |
模擬輸入 | 建構真實互動 |
LangChain 開發者不只是 coder,更是「Prompt Architect × AI 協作者」。
課程實作專案:
使用 Flask 建立一個 AI 生成 API,後端透過 LangChain 管線執行任務。
from flask import Flask, request, jsonify
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import JsonOutputParser
from langchain_openai import ChatOpenAI
app = Flask(__name__)
template = PromptTemplate(template="將以下文字摘要為三句話:{text}", input_variables=["text"])
llm = ChatOpenAI(model="gpt-4")
parser = JsonOutputParser()
chain = template | llm | parser
@app.route("/summary", methods=["POST"])
def summarize():
data = request.json
result = chain.invoke({"text": data["text"]})
return jsonify(result)
部署建議:
Flask Dev Server
Gunicorn + Docker
IBM 講師 Nicholas Renott 提出「AI 花園比喻」:
「AI 模型就像作物,選對種子、定期照料、輪作多樣化,系統才能健康。」
層面 | 問題 | 對應策略 |
---|---|---|
建構階段 | 選哪個模型? | 採用多模型策略(LLM + SLM) |
成長階段 | 如何保持效能? | 建立性能監控與基準測試 |
生態階段 | 如何防止鎖定? | 避免供應商依賴,支援可替換架構 |
項目 | Flask | LangChain | 結合價值 |
---|---|---|---|
定位 | Web API 框架 | AI 應用框架 | AI API 快速開發 |
特性 | 輕量、模組化 | 結構化、可組合 | 快速迭代與擴展 |
優勢 | RESTful、簡單 | 支援 LLM、RAG、Agent | 從「Prompt」到「產品」 |
安全性 | 可控環境、虛擬化部署 | 支援模型治理與日誌 | 合規、安全可追蹤 |
主題 | 來源 |
---|---|
LangChain 官方文件 | https://python.langchain.com/ |
Flask 官方文件 | https://flask.palletsprojects.com/ |
IBM watsonx.ai | https://www.ibm.com/watsonx |
ReAct 原論文 | https://arxiv.org/abs/2210.03629 |
LangGraph 協作代理框架 | https://github.com/langchain-ai/langgraph |
「AI 工程師的任務,從『寫程式』轉變為『設計語境』。」
—— Andrew Ng
LangChain 的出現讓「AI 工程」不再只是調 API,而是一場跨越認知與創造力的革命。
在這個新時代,懂得設計提示、構建鏈條與治理模型的開發者,將是未來生成式 AI 世界的建築師。